Ant: A Framework for Increasing the Efficiency of Sequential Debugging Techniques with Parallel Programs
نویسندگان
چکیده
Lee, Jae-Woo Ph.D., Purdue University, December 2013. Ant: A Framework for Increasing the Efficiency of Sequential Debugging Techniques with Parallel Programs. Major Professor: Samuel P. Midkiff. Bugs in sequential programs cost the software industry billions of dollars in lost productivity each year. Even if simple parallel programming models are created, they will not reduce the level of sequential bugs in programs below that of sequential programs. It can be argued that the complexity of current parallel programming models may increase the number of sequential bugs in parallel programs because they distract the programmer from the core logic of the program. Tools exist that identify statements related to sequential bugs and allow those bugs to be more quickly located and fixed. Their use in parallel programs will continue to be useful. Many of these debugging tools require runtime monitoring of program points of interest in a program and the overhead of this monitoring is usually very high. We propose Ant, a framework that increases the efficiency of sequential debugging techniques when used with parallel programs. The Ant framework takes two different strategies depending on whether the program to be debugged is a distributed memory program or shared memory program. For MPI programs, the Ant compiler analyzes the program and identifies two different types of code regions: those that all processes execute and regions that only part of the processes execute. For shared memory Pthreads programs, Ant uses a combination of static and dynamic analyses to determine similar parts of the program executing in parallel and the number of threads executing those parts of the program. The programs are instrumented with calls to Ant runtime libraries and debugging libraries based on the Ant compiler’s
منابع مشابه
A Structured Approach to Parallel Programming: Methodology and Models
Parallel programming continues to be difficult, despite substantial and ongoing research aimed at making it tractable. Especially dismaying is the gulf between theory and the practical programming. We propose a structured approach to developing parallel programs for problems whose specifications are like those of sequential programs, such that much of the work of development, reasoning, and tes...
متن کاملDebugging in Parallel or Sequential: An Empirical Study
Faults need to be identified, localized, and removed from programs. Empirical studies show that coverage-based faults localizations effectively target bugs, even in the presence of multiple faults. Debugging is a time-consuming activity and thus it is beneficial to accelerate the process by employing appropriate techniques. The need for speeding up the debugging process is even more immense whe...
متن کاملParallel Functional Programming with Skeletons: the ocamlp3l experiment
Writing parallel programs is not easy, and debugging them is usually a nightmare. To cope with these di culties, a structured approach to parallel programs using skeletons and template based compiler techniques has been developed over the past years by several researchers, including the P3L group in Pisa. This approach is based on the use of a set of primitive forms that are just functionals im...
متن کاملOcamlP 3 l a functional parallel programming system ∗
Writing parallel programs is not easy, and debugging them is usually a nightmare. To cope with these difficulties, a structured approach to parallel programs using skeletons and template based compiler techniques has been developed over the past years by several researchers, including the P3L group in Pisa. This approach is based on the use of a set of primitives that are just functionals imple...
متن کاملRelative Debugging for Parallel Systems
Relative debugging is a system which allows a programmer to compare the state of two executing programs. It is embedded in a conventional debugger, and makes it possible to isolate errors after a program has been modified or "ported" from one system to another. It has found been that relative debugging is useful for finding errors in large scientific programs. The technique is applicable to seq...
متن کامل